Methods, Systems, and Program Products for Tagging a Resource

ABSTRACT

Methods and systems are described for tagging a resource. In an aspect, a matched tag is created by associating a user identified tag with a tagging criterion that is based on data other than the tag. A determination is made that the tagging criterion is met for each resource in a plurality of resources. Each resource in the plurality is tagged with the tag, in response to the determining. Presentation information is sent to present, via an output device, a tag user interface element representing the tag, that represents the tag, as a target for a user input to initiate an operation that identifies a resource in the plurality.

RELATED APPLICATIONS

This application is related to the following commonly owned U.S. patentapplications: application Ser. No. 13/622,367 (Docket No DRV0005) filedon 2012 Sep. 19, entitled “Methods, Systems, and Program Products forDistinguishing Tags for a Resource”;

Application Ser. No. 13/622,372 (Docket No DRV0007) filed on 2012 Sep.19, entitled “Methods, Systems, and Program Products for NavigatingTagging Contexts”;

Application Ser. No. 13/622,370 (Docket No DRV0008) filed on 2012 Sep.19, entitled “Methods, Systems, and Program Products for AutomaticallyManaging Tagging of a Resource”;

Application Ser. No. 13/622,371 (Docket No DRV0009) filed on 2012 Sep.19, entitled “Methods, Systems, and Program Products for Locating TaggedResources in a Resource Scope”, and

Application Ser. No. 13/622,368 (Docket No DRV0021) filed on 2012 Sep.19, entitled “Methods, Systems, and Program Products for Identifying aMatched Tag Set”.

BACKGROUND

Tagging has become a common way to allow users to categorize and/orotherwise create relationships between resources on the Web. Resources,such as images, video, audio, documents, and other web content aretagged every day. One of the disadvantages of tagging is that it is userintensive. Each tag associated with the many resources on the Web isadded by a user. Another disadvantage is that tagging is static in thattags for a resource do not change even if the resource changes, unless auser changes the tags. Not only is this inefficient, it is a source orerrors and/or inconsistencies in tags. For example, this user intensiveeffort increases the number tags that use alternate spellings, which aretypically treated as different tags. Misspellings lead to furthererrors. Additionally, when a resource is added or created it has nottags. It may take quite some time before the set of tags associated witha new resource becomes stable. Still further, this user intensive effortleads to the loss of many tags, as users choose not to make the effortto tag resources.

Accordingly, there exists a need for methods, systems, and computerprogram products for tagging a resource.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

Methods and systems are described for tagging a resource. In one aspect,the method includes creating a matched tag by associating a useridentified tag with a tagging criterion that is based on data other thanthe tag. The method further includes determining that the taggingcriterion is met for each resource in a plurality of resources. Themethod still further includes tagging each resource in the pluralitywith the tag, in response to the determining. The method additionallyincludes sending presentation information to present, via an outputdevice, a tag user interface element, that represents the tag, as atarget for a user input to initiate an operation that identifies aresource in the plurality. Performing at least one the preceding actionscomprising the method includes execution of an instruction by aprocessor.

Also, a system for tagging a resource is described that includes one ormore processors and logic encoded in one or more tangible media forexecution by the one or more processors that when executed is operablefor creating a matched tag by associating a user identified tag with atagging criterion that is based on data other than the tag; determiningthat the tagging criterion is met for each resource in a plurality ofresources; tagging each resource in the plurality with the tag, inresponse to the determining; and sending presentation information topresent, via an output device, a tag user interface element, thatrepresents the tag, as a target for a user input to initiate anoperation that identifies a resource in the plurality.

Further, a system for tagging a resource is described. The systemincludes a tag director component for creating a matched tag byassociating a user identified tag with a tagging criterion that is basedon data other than the tag. The system further includes a criterionmatch component for determining that the tagging criterion is met foreach resource in a plurality of resources. The system still furtherincludes a tagging component for tagging each resource in the pluralitywith the tag, in response to the determining. The system yet furtherincludes a tag handler component for sending presentation information topresent, via an output device, a tag user interface element, thatrepresents the tag, as a target for a user input to initiate anoperation that identifies a resource in the plurality. The system alsoincludes a processor, wherein at least one of the tag directorcomponent, the criterion match component, the tagging component, and thetag handler component includes an instruction that is executed by theprocessor during operation of the system.

BRIEF DESCRIPTION OF THE DRAWINGS

Objects and advantages of the present invention will become apparent tothose skilled in the art upon reading this description in conjunctionwith the accompanying drawings, in which like reference numerals havebeen used to designate like or analogous elements, and in which:

FIG. 1 is a block diagram illustrating an exemplary executionenvironment, including and/or otherwise provided by a hardware device,in which the subject matter may be implemented;

FIG. 2 is a flow diagram illustrating a method for tagging a resourceaccording to an aspect of the subject matter described herein;

FIG. 3 is a block diagram illustrating an arrangement of components fortagging a resource according to another aspect of the subject matterdescribed herein;

FIG. 4A is a block diagram illustrating an arrangement of components fortagging a resource according to another aspect of the subject matterdescribed herein;

FIG. 4B is a block diagram illustrating an arrangement of components fortagging a resource according to another aspect of the subject matterdescribed herein;

FIG. 4C is a block diagram illustrating an arrangement of components fortagging a resource according to another aspect of the subject matterdescribed herein;

FIG. 4D is a block diagram illustrating an arrangement of components fortagging a resource according to another aspect of the subject matterdescribed herein;

FIG. 5 is a network diagram illustrating a system for tagging a resourceaccording to another aspect of the subject matter described herein;

FIG. 6A is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein;

FIG. 6B is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein; and

FIG. 6C is a diagram illustrating a user interface presented via adisplay according to another aspect of the subject matter describedherein.

DETAILED DESCRIPTION

One or more aspects of the disclosure are described with reference tothe drawings, wherein like reference numerals are generally utilized torefer to like elements throughout, and wherein the various structuresare not necessarily drawn to scale. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of one or more aspects of thedisclosure. It may be evident, however, to one skilled in the art, thatone or more aspects of the disclosure may be practiced with a lesserdegree of these specific details. In other instances, well-knownstructures and devices are shown in block diagram form in order tofacilitate describing one or more aspects of the disclosure.

Unless otherwise defined, all technical and scientific terms used hereinhave the same meaning as commonly understood by one of ordinary skill inthe art to which this disclosure belongs. Although methods, components,and devices similar or equivalent to those described herein can be usedin the practice or testing of the subject matter described herein,suitable methods, components, and devices are described below.

All publications, patent applications, patents, and other referencesmentioned herein are incorporated by reference in their entirety. Incase of conflict, the present specification, including definitions, willcontrol. In addition, the materials, methods, and examples areillustrative only and not intended to be limiting.

An exemplary device included in an execution environment that may beconfigured according to the subject matter is illustrated in FIG. 1. An“execution environment”, as used herein, is an arrangement of hardwareand, in some aspects, software that may be further configured to includeand/or otherwise host an arrangement of components for performing amethod of the subject matter described herein. An execution environmentincludes and/or is otherwise provided by one or more devices. Theexecution environment is said to be the execution environment of thedevice and/or devices. An execution environment may be and/or mayinclude a virtual execution environment including software componentsoperating in a host execution environment. Exemplary devices included inand/or otherwise providing suitable execution environments forconfiguring according to the subject matter include personal computers,notebook computers, tablet computers, servers, portable electronicdevices, handheld electronic devices, mobile devices, multiprocessordevices, distributed systems, consumer electronic devices, routers,communication servers, and/or any other suitable devices. Those skilledin the art will understand that the components illustrated in FIG. 1 areexemplary and may vary by particular execution environment.

FIG. 1 illustrates a hardware device 100 included in an executionenvironment 102. FIG. 1 illustrates that execution environment 102includes a processor 104, such as one or more microprocessors; aphysical processor memory 106 including storage locations identified byaddresses in a physical memory address space of processor 104; apersistent secondary storage 108, such as one or more hard drives and/orflash storage media; an input device adapter 110, such as a key orkeypad hardware, a keyboard adapter, and/or a mouse adapter; an outputdevice adapter 112, such as a display and/or an audio adapter forpresenting information to a user; a network interface component,illustrated by a network interface adapter 114, for communicating via anetwork such as a LAN and/or WAN; and a communication mechanism thatoperatively couples elements 104-114, illustrated as a bus 116. Elements104-114 may be operatively coupled by various means. Bus 116 maycomprise any type of bus architecture, including a memory bus, aperipheral bus, a local bus, and/or a switching fabric.

As used herein a “processor” is an instruction execution machine,apparatus, or device. A processor may include one or more electrical,optical, and/or mechanical components that operate in interpreting andexecuting program instructions. Exemplary processors include one or moremicroprocessors, digital signal processors (DSPs), graphics processingunits, application-specific integrated circuits (ASICs), optical orphotonic processors, and/or field programmable gate arrays (FPGAs).Processor 104 may access machine code instructions and data via one ormore memory address spaces in addition to the physical memory addressspace. A memory address space includes addresses identifying locationsin a processor memory. The addresses in a memory address space areincluded in defining a processor memory. Processor 104 may have morethan one processor memory. Thus, processor 104 may have more than onememory address space. Processor 104 may access a location in a processormemory by processing an address identifying the location. The processedaddress may be identified by an operand of a machine code instructionand/or may be identified by a register or other portion of processor104.

FIG. 1 illustrates a virtual processor memory 118 spanning at least partof physical processor memory 106 and may span at least part ofpersistent secondary storage 108. Virtual memory addresses in a memoryaddress space may be mapped to physical memory addresses identifyinglocations in physical processor memory 106. An address space foridentifying locations in a virtual processor memory is referred to as avirtual memory address space; its addresses are referred to as virtualmemory addresses; and its processor memory is referred to as a virtualprocessor memory or virtual memory. The term “processor memory” mayrefer to physical processor memory, such as processor memory 106, and/ormay refer to virtual processor memory, such as virtual processor memory118, depending on the context in which the term is used.

Physical processor memory 106 may include various types of memorytechnologies. Exemplary memory technologies include static random accessmemory (SRAM) and/or dynamic RAM (DRAM) including variants such as dualdata rate synchronous DRAM (DDR SDRAM), error correcting codesynchronous DRAM (ECC SDRAM), RAMBUS DRAM (RDRAM), and/or XDR™ DRAM.Physical processor memory 106 may include volatile memory as illustratedin the previous sentence and/or may include nonvolatile memory such asnonvolatile flash RAM (NVRAM) and/or ROM.

Persistent secondary storage 108 may include one or more flash memorystorage devices, one or more hard disk drives, one or more magnetic diskdrives, and/or one or more optical disk drives. Persistent secondarystorage may include a removable data storage medium. The drives andtheir associated tangible computer readable storage media providevolatile and/or nonvolatile storage for computer-readable instructions,data structures, program components, and other data for executionenvironment 102.

Execution environment 102 may include software components stored inpersistent secondary storage 108, in remote storage accessible via anetwork, and/or in a processor memory. FIG. 1 illustrates executionenvironment 102 including an operating system 120, one or moreapplications 122, and other program code and/or data componentsillustrated by other libraries and subsystems 124. In an aspect, some orall software components may be stored in locations accessible toprocessor 104 in a shared memory address space shared by the softwarecomponents. The software components accessed via the shared memoryaddress space are stored in a shared processor memory defined by theshared memory address space. In another aspect, a first softwarecomponent may be stored in one or more locations accessed by processor104 in a first address space and a second software component may bestored in one or more locations accessed by processor 104 in a secondaddress space. The first software component is stored in a firstprocessor memory defined by the first address space and the secondsoftware component is stored in a second processor memory defined by thesecond address space.

Software components typically include instructions executed by processor104 in a computing context referred to as a “process”. A process mayinclude one or more “threads”. A “thread” includes a sequence ofinstructions executed by processor 104 in a computing sub-context of aprocess. The terms “thread” and “process” may be used interchangeablyherein when a process includes only one thread.

Execution environment 102 may receive user-provided information via oneor more input devices illustrated by an input device 128. Input device128 provides input information to other components in executionenvironment 102 via input device adapter 110. Execution environment 102may include an input device adapter for a keyboard, a touch screen, amicrophone, a joystick, a television receiver, a video camera, a stillcamera, a document scanner, a fax, a phone, a modem, a network interfaceadapter, and/or a pointing device, to name a few exemplary inputdevices.

Input device 128 included in execution environment 102 may be includedin device 100 as FIG. 1 illustrates or may be external (not shown) todevice 100. Execution environment 102 may include one or more internaland/or external input devices. External input devices may be connectedto device 100 via corresponding communication interfaces such as aserial port, a parallel port, and/or a universal serial bus (USB) port.Input device adapter 110 receives input and provides a representation tobus 116 to be received by processor 104, physical processor memory 106,and/or other components included in execution environment 102.

An output device 130 in FIG. 1 exemplifies one or more output devicesthat may be included in and/or that may be external to and operativelycoupled to device 100. For example, output device 130 is illustratedconnected to bus 116 via output device adapter 112. Output device 130may be a display device. Exemplary display devices include liquidcrystal displays (LCDs), light emitting diode (LED) displays, andprojectors. Output device 130 presents output of execution environment102 to one or more users. In some embodiments, an input device may alsoinclude an output device. Examples include a phone, a joystick, and/or atouch screen. In addition to various types of display devices, exemplaryoutput devices include printers, speakers, tactile output devices suchas motion-producing devices, and other output devices producing sensoryinformation detectable by a user. Sensory information detected by a useris referred herein to as “sensory input” with respect to the user.

A device included in and/or otherwise providing an execution environmentmay operate in a networked environment communicating with one or moredevices via one or more network interface components. The terms“communication interface component” and “network interface component”are used interchangeably herein. FIG. 1 illustrates network interfaceadapter (NIA) 114 as a network interface component included in executionenvironment 102 to operatively couple device 100 to a network. A networkinterface component includes a network interface hardware (NIH)component and optionally a network interface software (NIS) component.

Exemplary network interface components include network interfacecontroller components, network interface cards, network interfaceadapters, and line cards. A node may include one or more networkinterface components to interoperate with a wired network and/or awireless network. Exemplary wireless networks include a BLUETOOTHnetwork, a wireless 802.11 network, and/or a wireless telephony network(e.g., a cellular, PCS, CDMA, and/or GSM network). Exemplary networkinterface components for wired networks include Ethernet adapters,Token-ring adapters, FDDI adapters, asynchronous transfer mode (ATM)adapters, and modems of various types. Exemplary wired and/or wirelessnetworks include various types of LANs, WANs, and/or personal areanetworks (PANs). Exemplary networks also include intranets and internetssuch as the Internet.

The terms “network node” and “node” in this document both refer to adevice having a network interface component for operatively coupling thedevice to a network. Further, the terms “device” and “node” used hereinmay refer to one or more devices and nodes, respectively, providingand/or otherwise included in an execution environment unless clearlyindicated otherwise.

The user-detectable outputs of a user interface are generically referredto herein as “user interface elements” or abbreviated as “UI elements”.More specifically, visual outputs of a user interface are referred toherein as “visual interface elements”. A visual interface element may bea visual output of a graphical user interface (GUI). Exemplary visualinterface elements include windows, textboxes, sliders, list boxes,drop-down lists, spinners, various types of menus, toolbars, ribbons,combo boxes, tree views, grid views, navigation tabs, scrollbars,labels, tooltips, text in various fonts, balloons, dialog boxes, andvarious types of button controls including check boxes and radiobuttons. An application interface may include one or more of theelements listed. Those skilled in the art will understand that this listis not exhaustive. The terms “visual representation”, “visual output”,and “visual interface element” are used interchangeably in thisdocument. Other types of UI elements include audio outputs referred toas “audio interface elements”, tactile outputs referred to as “tactileinterface elements”, and the like.

A visual output may be presented in a two-dimensional presentation wherea location may be defined in a two-dimensional space having a verticaldimension and a horizontal dimension. A location in a horizontaldimension may be referenced according to an X-axis and a location in avertical dimension may be referenced according to a Y-axis. In anotheraspect, a visual output may be presented in a three-dimensionalpresentation where a location may be defined in a three-dimensionalspace having a depth dimension in addition to a vertical dimension and ahorizontal dimension. A location in a depth dimension may be identifiedaccording to a Z-axis. A visual output in a two-dimensional presentationmay be presented as if a depth dimension existed allowing the visualoutput to overlie and/or underlie some or all of another visual output.

A “user interface (UI) element handler” component, as the term is usedherein, includes a component of configured to send informationrepresenting a program entity for presenting a user-detectablerepresentation of the program entity by an output device, such as adisplay. A “program entity” is an object included in and/or otherwiseprocessed by an application or executable. The user-detectablerepresentation is presented based on the sent information. Informationthat represents a program entity for presenting a user detectablerepresentation of the program entity by an output device is referred toherein as “presentation information”. Presentation information mayinclude and/or may otherwise identify data in one or more formats.Exemplary formats include image formats such as raw pixel data, JPEG,video formats such as MP4, markup language data such as hypertext markuplanguage (HTML) and other XML-based markup, a bit map, and/orinstructions such as those defined by various script languages, bytecode, and/or machine code. For example, a web page received by a useragent from a remote application provider may include HTML, ECMAScript,and/or byte code for presenting one or more UI elements included in auser interface of the remote application. Components configured to sendinformation representing one or more program entities for presentingparticular types of output by particular types of output devices includevisual interface element handler components, audio interface elementhandler components, tactile interface element handler components, andthe like.

A representation of a program entity may be stored and/or otherwisemaintained in a presentation space. As used in this document, the term“presentation space” refers to a storage region allocated and/orotherwise provided for storing presentation information, which mayinclude audio, visual, tactile, and/or other sensory data forpresentation by and/or on an output device. For example, a buffer forstoring an image and/or text string may be a presentation space assensory information for a user. A presentation space may be physicallyand/or logically contiguous or non-contiguous. A presentation space mayhave a virtual as well as a physical representation. A presentationspace may include a storage location in a processor memory, secondarystorage, a memory of an output adapter device, and/or a storage mediumof an output device. A screen of a display, for example, is apresentation space.

As used herein, the terms “program” and “executable” refer to any datarepresentation that may be translated into a set of machine codeinstructions and may optionally include associated program data. Theterms are used interchangeably herein. Program representations otherthan machine code include object code, byte code, and source code.Object code includes a set of instructions and/or data elements thateither are prepared for linking prior to loading or are loaded into anexecution environment. When in an execution environment, object code mayinclude references resolved by a linker and/or may include one or moreunresolved references. The context in which this term is used will makeclear the state of the object code when it is relevant. This definitioncan include machine code and virtual machine code, such as Java™ bytecode. As used herein, the terms “application”, and “service” may berealized in one or more executables and/or in one or more hardwarecomponents. The terms are used interchangeably herein.

As used herein, the term “network protocol” refers to a formal set ofrules, conventions and data structures that governs how computers andother network devices exchange information over a network. The rules,conventions, and data structures are said to be specified or defined ina specification and/or schema.

The term “network path” as used herein refers to a sequence of nodes ina network that are communicatively coupled for transmitting data in oneor more data units of a specified network protocol between a pair ofnodes in the network.

A “data unit”, as the term is used herein, is a data entity specifiedaccording to a network protocol for transmitting data contained inand/or otherwise identified by the data entity. A data unit istransmitted between a pair of nodes in a network path to send the datain and/or otherwise identified by the data unit from a source node to adestination node that includes a protocol endpoint of the networkprotocol. A network protocol explicitly and/or implicitly specifiesand/or otherwise identifies a schema that defines one or more of aformat for a valid data unit and a vocabulary for content of a validdata unit. One example of a data unit is an Internet Protocol (IP)packet. The Internet Protocol defines a format for an IP packet thatdefines a header for identifying a destination address that identifies adestination node and a payload portion for including a representation ofdata to be delivered to the identified destination node. The terms “dataunit”, “data packet”, and “packet” are used interchangeably herein. Oneor more data units of a first network protocol may transmit a message ofsecond network protocol. For example, one or more data units of the IPprotocol may include a TCP message. In another example, one or more TCPdata units may transmit an HTTP message.

How data is packaged in one more data units for a network protocol mayvary as the data traverses a network path from a source node to adestination node. Data may be transmitted in a single data unit betweentwo consecutive nodes in a network path. Additionally, data may beexchanged between a pair of consecutive nodes in several data units eachincluding a portion of the data. Data received in a single data unit bya node in a network path may be split into portions included in severalrespective data units for transmitting to a next node in the networkpath. Portions of data received in several data units may be combinedinto a single data unit for transmitting by a node in a network path.For purposes of describing the subject matter, a data unit in which datais received by a node is referred to as a different data unit than adata unit in which the data is forwarded by the node.

A “protocol address”, as the term is used herein, for a network protocolis an identifier of a protocol endpoint that may be represented in adata unit of the protocol. For example 192.168.1.1 is an IP protocoladdress represented in a human readable format that may be included inan address portion of an IP header to identify a source and/or adestination IP protocol endpoint. A protocol address differs from asymbolic identifier, defined below, in that a symbolic identifier, withrespect to a network protocol, maps to a protocol address. Thus, “www.mynode.com” may be a symbolic identifier for a node in a network whenmapped to the protocol address 192.168.1.1. An identifier may be both asymbolic identifier and a protocol address depending on its role withrespect to its use for a particular network protocol.

Since a protocol endpoint is included in a node and is accessible via anetwork via a network interface, a protocol address identifies a nodeand identifies a network interface of the node. A network interface mayinclude one or more NICs operatively coupled to a network.

An “interaction”, as the term is used herein, refers to any activityincluding a user and an object where the object is a source of sensorydata detected by the user. In an interaction the user directs attentionto the object. An interaction may also include the object as a target ofinput from the user. The input from the user may be providedintentionally or unintentionally by the user. For example, a rock beingheld in the hand of a user is a target of input, both tactile and energyinput, from the user. A portable electronic device is a type of object.In another example, a user looking at a portable electronic device isreceiving sensory data from the portable electronic device whether thedevice is presenting an output via an output device or not. The usermanipulating an input component of the portable electronic deviceexemplifies the device, as an input target, receiving input from theuser. Note that the user in providing input is detecting sensoryinformation from the portable electronic device provided that the userdirects sufficient attention to be aware of the sensory information andprovided that no disabilities prevent the user from processing thesensory information. An interaction may include an input from the userthat is detected and/or otherwise sensed by the device. An interactionmay include sensory information that is detected by a user included inthe interaction that is presented by an output device included in theinteraction.

As used herein “interaction information” refers to any information thatidentifies an interaction and/or otherwise provides data about aninteraction between a user and an object, such as a portable electronicdevice. Exemplary interaction information may identify a user input forthe object, a user-detectable output presented by an output device ofthe object, a user-detectable attribute of the object, an operationperformed by the object in response to a user, an operation performed bythe object to present and/or otherwise produce a user-detectable output,and/or a measure of interaction. The term “operational component” of adevice, as used herein, refers to a component included in performing anoperation by the device.

Interaction information for one object may include and/or otherwiseidentify interaction information for another object. For example, amotion detector may detect user's head turn in the direction of adisplay of a portable electronic device. Interaction informationidentifying the user's head is facing the display may be received and/orused as interaction information for the portable electronic deviceindicating the user is receiving visual input from the display. Theinteraction information may serve to indicate a lack of user interactionwith one or more other objects in directions from the user differentthan the detected direction, such as a person approaching the user frombehind the user. Thus the interaction information may serve asinteraction information for one or more different objects.

The term “attention information” as used herein refers to informationthat identifies an attention output and/or that includes an indicationto present an attention output. Attention information may identifyand/or may include presentation information that includes arepresentation of an attention output, in one aspect. In another aspect,attention output may include a request and/or one or more instructionsfor processing by a processor to present an attention output. Theaspects described serve merely as examples based on the definition ofattention information, and do not provide an exhaustive list of suitableforms and content of attention information.

As used herein the term “attention criterion” refers to a criterion thatwhen met is defined as indicating that interaction between a user and anobject is or maybe inadequate at a particular time and/or during aparticular time period. In other words, the user is not directingadequate attention to the object.

As used herein, the term “tag” refers to a character string, which mayinclude one or more words, which may be associated with a resource tocreate an association between the resource and another resource alsotagged with the tag. Tags are often used in sharing media, socialbookmarking, social news and blog entries to help users search forassociated content. In some contexts, the term “tagging” as used hereinrefers to the process of associating a tag with a resource that can betagged. As used herein, the term “tagged association” refers to anassociation that identifies a tag and a resource that is tagged with thetag. A resource is said to be “tagged” with a tag when a taggingprocess, also referred to as “tagging”, has successfully created atagged association. In other contexts, a “tagging” refers to a taggedassociation.

The term “matched tag”, as used herein, refers to an association thatidentifies a tag and a tagging criterion, where the tagging criterion isbased on data other than the tag. The tagging criterion may be basedadditionally on the tag. The term “tagging association”, as used herein,refers to a matched tag represented in a memory, either persistentand/or volatile. For example, a tagging association may be realized as arecord that includes and/or identifies a tag and a tagging criterion.The terms “matched tag” and “tagging association” are usedinterchangeably. When the term “matched tag” refers to something otherthan its tagging association, it will be made clear. For example, areference to matched tag presented in a user interface clearlyidentifies a UI element that identifies and/or otherwise representsand/or otherwise identifies a matched tag either realized or to berealized in a tagging association. A tagged association, defined above,may identify a matched tag and a resource that is tagged with the tagidentified by the matched tag. Such an association is also referred toherein as a “matched tag association”. A resource may be tagged with amatched tag when a tagging criterion identified by the matched tag ismet for the resource.

As user herein, the term “vocabulary” refers to a set of valid valuesthat can be assigned to and/or included in a data element. With respectto a tag, a vocabulary defines valid tags. A vocabulary may be specifiedby one or more rules and/or by identifying one or more valid valuesdirectly and/or indirectly.

As used herein, the term “dictionary” refers a vocabulary wherein one ormore terms in the vocabulary is assigned a definition. A “definition” asthe term is used herein refers to information that identifies semanticinformation about a data value, such as at tag. Semantic information mayinclude one or more of a textual description of a meaning of the term,an audio description, a visual description, and information identifyinga use or context for the term. A use and/or context may be identified,for example, by identifying a part of speech, a dialect or language, anantonym, a synonym, and/or an example usage of the defined data value.

As used herein, any reference to an entity “in” an association isequivalent to describing the object as “identified” by the association,unless explicitly indicated otherwise.

FIG. 3 illustrates an arrangement of components in a system thatoperates in an execution environment, such as execution environment 102in FIG. 1, to perform the method illustrated in FIG. 2. The systemillustrated includes a tag director component 302, a criterion matchcomponent 304, a tagging component 306, and a tag handler component 308.A suitable execution environment includes a processor, such as processor104, to process an instruction in at least one of a tag directorcomponent, a criterion match component, a tagging component, and a taghandler component. Some or all of the exemplary components illustratedin FIG. 3 may be adapted to operate in a number of executionenvironments to perform the method illustrated in FIG. 2. FIGS. 4A-D areeach block diagrams illustrating the components of FIG. 3 and/or analogsof the components of FIG. 3 respectively adapted to operate in anexecution environment 401 a, an execution environment 401 b, anexecution environment 401 c, and an execution environment 401 d thateach include and/or otherwise are provided by one or more nodes.Components, illustrated in FIGS. 4A-D, are identified by numbers with analphanumeric suffix. A component may be referred to generically in thesingular or the plural by dropping a suffix of a portion thereof of thecomponent's identifier. Execution environments; such as executionenvironment 401 a, execution environment 401 b, execution environment401 c, execution environment 401 d, and their adaptations and analogs;are referred to herein generically as an execution environment 401 orexecution environments 401 when describing more than one. Othercomponents identified with an alphanumeric suffix may be referred togenerically or as a group in a similar manner.

FIG. 1 illustrates key components of an exemplary device that may atleast partially provide and/or otherwise be included in an executionenvironment. The components illustrated in FIGS. 4A-D may be included inor otherwise combined with the components of FIG. 1 to create a varietyof arrangements of components according to the subject matter describedherein.

FIG. 5 illustrates a user node 502 as an exemplary device that invarious aspects may be included in and/or otherwise adapted to provideany execution environment 401 illustrated in FIGS. 4A-C eachillustrating a different adaptation of the arrangement of components inFIG. 3. In an aspect, a user node may be included in and/or otherwisehost an execution environment 401 d and/or an analog of executionenvironment 401 d. As illustrated in FIG. 5, user node 502 isoperatively coupled to a network 504 via a network interface component,such as network interface adapter 114. Alternatively or additionally, anadaptation of an execution environment 401 may include and/or mayotherwise be provided by a device that is not operatively coupled to anetwork. A server device is illustrated by a service provider node 506.Service provider node 506 may be included in and/or otherwise provideexecution environment 401 d illustrated in FIG. 4D and/or an analog ofexecution environment 401 d. In an aspect, a service provider node maybe included in and/or otherwise host any execution environment 401and/or an analog of any execution environment 401 illustrated in FIGS.4A-C. As illustrated in FIG. 5, service provider node 506 is operativelycoupled to network 504 via a network interface component included inexecution environment 401 d. Thus, service provider node 506 iscommunicatively coupled to one or more user nodes and/or other serviceprovider nodes.

FIG. 4A illustrates that execution environment 401 a hosts anapplication 403 a that includes an adaptation of the arrangement ofcomponents in FIG. 3. FIG. 4B illustrates execution environment 401 bhosting a browser 403 b including an adaptation of the arrangement ofcomponents in FIG. 3 that may operate at least partially in a networkapplication agent 405 b received from a remote application provider,such as a network service 403 d in FIG. 4D. Browser 403 b and executionenvironment 401 b may provide at least part of an execution environmentfor network application agent 405 b that may be received via network 504from network service 403 d operating in service provider node 506. FIG.4C illustrates an arrangement of the components in FIG. 3 adapted tooperate in a tagging subsystem 407 c in execution environment 401 c.

FIG. 4D illustrates execution environment 401 d which may host one ormore network services, such as a web application, illustrated by networkservice 403 d. FIG. 4D also illustrates a network service platform 409 dthat may provide services to one or more network services. Networkservice 403 d includes yet another adaptation of the arrangement ofcomponents in FIG. 3.

As stated the various adaptations of the arrangement in FIG. 3 are notexhaustive. For example, those skilled in the art will see based on thedescription herein that arrangements of components for performing themethod illustrated in FIG. 2 may operate in a single device, or may bedistributed across more than one node in a network and/or more than oneexecution environment. For example, an arrangement may operate at leastpartially in browser 403 b illustrated in FIG. 4B and at least partiallyin execution environment 401 d in and/or external to network service 403d.

FIGS. 4A-D illustrate network stacks 411 that operate to send andreceive data over network 504, via a network interface component.Network service platform 409 d in FIG. 4D provides services to one ormore network services. In various aspects, network service platform 409d may include and/or interoperate with a web server. FIG. 4D alsoillustrates network service platform 409 d in operation interoperateswith a network stack 411 d.

Interoperating network stacks 411 may support the same protocol suite,such as TCP/IP, or may communicate via a network gateway or otherprotocol translation device and/or service. For example, browser 403 bin FIG. 4B and network service platform 409 d in FIG. 4D mayinteroperate via their respective network stacks: a network stack 411 band network stack 411 d.

FIGS. 4A-D illustrate applications 403, respectively, which maycommunicate via one or more service protocols. FIGS. 4A-D respectivelyillustrate service protocol components 413 that operate to communicatevia one or more service protocols. Exemplary service protocols includehypertext transfer protocol (HTTP), remote procedure call (RPC)protocols, instant messaging protocols, and presence protocols. Matchingprotocols enabling applications 403 to communicate via network 504 inFIG. 5 are not required, if communication is via a protocol gateway orother translator.

FIG. 4B illustrates that a browser may receive some or all of a networkapplication agent in one or more messages sent from a network service,such as network service 403 d, via a network service platform 409, anetwork stack 411, a network interface component, and optionally aservice protocol component 413. In FIG. 4B, browser 403 b includes acontent manager component 415 b. Content manager component 415 b mayinteroperate with one or more of service protocol components 413 band/or network stack 411 b to receive the message or messages includingsome or all of a network application agent 405 b.

A network application agent 405 may include a web page for presenting auser interface for and/or otherwise based on data from a correspondingnetwork service. The web page may include and/or reference datarepresented in one or more formats including hypertext markup language(HTML) and/or other markup language, ECMAScript or other scriptinglanguage, byte code, image data, audio data, and/or machine code.

In an example, in response to a request received from browser 403 b, acontroller component 417 d, in FIG. 4D, may invoke a model subsystem 419d to perform request-specific processing. Model subsystem 419 d mayinclude any number of request handlers (not shown) that operate todynamically generate data and/or to retrieve data from a model database421 d based on the request. Controller component 417 d may furtherinvoke a template engine component 423 d to identify one or moretemplates and/or static data elements to generate a user interface topresent a response to the received request. FIG. 4D illustrates atemplate database 425 d including an exemplary template 427 d. FIG. 4Dillustrates template engine component 425 d as a component in a viewsubsystem 429 d that operates to return responses to processed requestsin a presentation format suitable for a client, such as browser 403 b.View subsystem 429 d may provide the presentation data to controllercomponent 417 d to send to browser 403 b in response to the requestreceived from browser 403 b. Some or all of a network application agentmay be sent to a browser via a network service platform, as describedabove.

While the example describes sending some or all of a network applicationagent in response to a request, network service 403 d additionally oralternatively may send some or all of network application agent 405 b tobrowser 403 b via one or more asynchronous messages. In an aspect, anasynchronous message may be sent in response to a change detected bynetwork service 403 d. Publish-subscribe protocols, such as the presenceprotocol specified by XMPP-IM, are exemplary protocols for sendingmessages asynchronously.

The one or more messages including information representing some or allof network application agent 405 b illustrated in FIG. 4B may bereceived by content manager component 415 b via one or more of serviceprotocol component(s) 413 b and network stack 411 b as described above.In FIG. 4B, browser 403 b includes one or more content handlercomponents 431 b to process received data according to its data type,typically identified by a MIME-type identifier. Exemplary contenthandler components 431 b include a text/html content handler componentfor processing HTML documents; an application/xmpp-xml content handlercomponent for processing XMPP streams including presence tuples, instantmessages, and publish-subscribe data as defined by various XMPPspecifications; one or more video content handler components forprocessing video streams of various types; and still image data contenthandler components for processing various images types. Content handlercomponents 431 b process received data and may provide a representationof the processed data to one or more user interface (UI) element handlercomponents 433 b.

UI element handler components 433 are respectively illustrated inpresentation controller components 435 in FIGS. 4A-C. A presentationcontroller component 435 may manage visual, audio, and/or other types ofoutput of its including application 403 as well as receive and routedetected user and other inputs to components and extensions of itsincluding application 403. With respect to FIG. 4B, a UI element handlercomponent 433 b in various aspects may be adapted to operate at leastpartially in a content handler component 431 b such as a text/htmlcontent handler component and/or a script content handler component.Additionally or alternatively, a UI element handler component 433 in anexecution environment 401 may operate in and/or as an extension of itsincluding application 403. For example, a plug-in may provide a virtualmachine, for a UI element handler component 433 received as a scriptand/or byte code, that may operate as an extension in an application 403and/or external to and interoperating with the application 403.

FIGS. 6A-C each respectively illustrates a display presentation space602 of a display in and/or operatively coupled to a node, such as usernode 502. FIGS. 6A-C each respectively illustrates a desktop background604 that may be a still image and/or a video background. An applicationwindow 606 is illustrated in each of FIGS. 6A-C. An application window606 is a UI element presented that may provide and/or be included in auser interface for any of applications 403 illustrated in FIGS. 4A-Dand/or by a network application agent. For example, application window606 may be presented via interoperation of browser 403 b, networkapplication agent 405 b, and/or network service 403 d. A browser windowmay include a user interface of network service 403 d operating inservice provide node 506.

Various UI elements of applications 403 described above may be presentedby one or more UI element handler components 433 in FIGS. 4A-C and/or byview subsystem 429 d as illustrated in FIG. 4D. In an aspect,illustrated in FIGS. 4A-C, A UI element handler component 433 of one ormore applications 403 may operate to send presentation informationrepresenting a UI element, such as any of the visual components in anyof the application windows 606 in FIGS. 6A-C, to a GUI subsystem 437. AGUI subsystem 437 may instruct a graphics subsystem 439 to draw and/orotherwise store the UI element in a region of a display presentationspace 602, based on presentation information received from thecorresponding UI element handler component 433.

User input may be received corresponding to a UI element via an inputdriver 441 illustrated in FIGS. 4A-C in various adaptations. Forexample, a user may move a mouse to move a pointer presented in adisplay presentation space 602 over a UI element. A user may provide aninput detected by the mouse. The detected input may be received by a GUIsubsystem 437 via an input driver 441 as an operation or commandindicator based on the association of the shared location of the pointerand the UI element in the display presentation space 602.

With reference to FIG. 2, a block 202 illustrates that the methodincludes creating a matched tag by associating a user identified tagwith a tagging criterion that is based on data other than the tag.Accordingly, a system for tagging a resource includes means for creatinga matched tag by associating a user identified tag with a taggingcriterion that is based on data other than the tag. For example, thearrangement in FIG. 3, includes tag director component 302 that isoperable for creating a matched tag by associating a user identified tagwith a tagging criterion that is based on data other than the tag. FIGS.4A-D illustrate tag director components 402 as adaptations and/oranalogs of tag director component 302 in FIG. 3. One or more tagdirector components 402 operate in an execution environment 401. Thesystem for tagging a resource includes one or more processors and logicencoded in one or more tangible media for execution by the one or moreprocessors that when executed is operable for creating a matched tag byassociating a user identified tag with a tagging criterion that is basedon data other than the tag.

In FIG. 4A, a tag director component 402 a is illustrated as a componentof application 403 a. In FIG. 4B, a tag director component 402 b isillustrated as a component of network application agent 405 b. In FIG.4C, a tag director component 402 c is illustrated operating external toone or more applications 403 c. Execution environment 401 c includes atag director component 402 c in a tagging subsystem 407 c. In FIG. 4D, atag director component 402 d is illustrated operating in network service403 d remote from a network agent communicatively coupled to networkservice 403 d. In an aspect a tag director component 402 b and a tagdirector component 402 d may communicate via browser 403 b and networkservice 403 d in performing a portion of the method illustrated in FIG.2 in block 202.

In various aspects, a tag director component 402 may receive tagginginformation based on input information from a UI element handlercomponent 433. A user input may be detected that corresponds to a UIelement presented to identify and/or otherwise represent a tag. A tagmay be a user entered tag and/or otherwise a user selected tag. Further,criterion information identifying a tagging criterion may be receivedvia the same or different UI element handler component 433, where thetagging criterion is based on something other than and/or in addition tothe identified tag. In another aspect, a tagging criterion may bedetermined based on a user identified tag, by a UI element handlercomponent 433 and/or by a tag director component 402, in response to adetected user input identifying the tag. The tag director component 402may create a matched tag that identifies the tag and the taggingcriterion. The matched tag is realized as a tagging association asdefined above.

Execution environment 401 a, in FIG. 4A, may be included in and/orotherwise may include a node, such as user node 502 illustrated in FIG.5. Tagging information identifying a tag may be received by a UI elementhandler component 433 a in response to a user input detected by an inputdriver 441 a. Input information, such as information identifying alocation in a presentation space of a display, may be provided by theinput driver 441 a to GUI subsystem 437 a. Based on the inputinformation, GUI subsystem 437 a may identify application 403 a and sendthe input information, to application 403 a. GUI subsystem 437 a mayprovide a component, such as presentation controller 435 a that operatesto route input information within application 403 a to a UI elementhandler component 433 a. The UI element handler component 433 a mayidentify the tagging information based on the input information and mayprovide the tagging information to tag director component 402 a.Alternatively or additionally, GUI subsystem 437 a may provide inputinformation directly to one or more UI element handlers 433 acorresponding to one or more UI elements that GUI subsystem 437 a hasdetermined correspond to the detected user input. Criterion informationidentifying a tagging criterion may be received in an analogous mannervia the same or different UI element handler component 433 a, where thetagging criterion is based on something other than and/or in additionthe identified tag. The UI element handler component 433 a may identifythe criterion information based on the input information and provide thecriterion information to tag director component 402 a. Tag directorcomponent 402 a may create a matched tag that identifies the tag and thetagging criterion by creating a tagging association in tagging store 449a, which may include a database record and/or a file.

FIG. 6A depicts a user interface presented by an application 403 asdescribed above for any of FIGS. 4A-D. The application 403 includes oneor more UI element handlers 433 to present a create matched tag UIelement 606 a in presentation space 602 a of a display device. Creatematched tag UI element 606 a is illustrated with a menu bar UI element608 a including input UI elements for receiving user input for variousspecified operations. Create matched tag UI element 606 a includes atagging pane UI element 610 a to prompt a user to provide input toprovide tagging information that identifies a tag. In FIG. 6A, a tagfield UI element 612 a is presented by a corresponding UI elementhandler component 433 a allowing a user to specify a tag. Tagging paneUI element 608 a also includes a criterion field UI element 614 a toprompt the user to provide input to provide and/or otherwise identifycriterion information identifying a tagging criterion based on dataother than and/or in addition to the tag.

FIG. 6A illustrates, in criterion field UI element 614 a, inputinformation ‘Account=“PhotoMan”; Folder=“Rural”’ as criterioninformation provided by the user. An application 403 may operate toidentify “PhotoMan” as a user account identifier The application mayidentify “Rural” as folder that includes one or more digitalphotographs. The folder may be a folder shared by multiple accounts.FIG. 6A also illustrates tagging information, in tag field UI element610 a, identifying “Landscape” as the user identified tag. The inputinformation may be received by one or more UI element handler components433 that correspond to tag field UI element 612 a and criterion field UIelement 614A. A tag director component 402 may receive the tagginginformation and the criterion information in response to a user inputtargeting a “Save” button UI element 616 a and/or an “Apply & Show”button UI element 618 a. The user may cancel providing tagginginformation and criterion information by directing an input to a“Cancel” button UI element 620 a.

An arrangement of components in execution environment 401 b illustratedin FIG. 4B, may operate to perform equivalently in creating a matchedtag. Execution environment 401 b may also include and/or otherwise beincluded in a node, such as a user node 502 illustrated in FIG. 5. InFIG. 4B, a UI element handler component 433 b and/or a presentationcontroller component 435 b may receive input information correspondingto a presented user interface element for identifying tagginginformation. The input information may be provided to the UI elementhander component 433 b for processing. The UI element handler component433 b may perform all or some of the processing and/or may send arequest to a remote service, such as network service 403 d operating inexecution environment 401 d of a service provider node 506, via anetwork, such as network 504. Some or all of the processing of the inputinformation may be performed in execution environment 401 d to identifyand/or otherwise determine tagging information identifying a tag.Criterion information may be identified and/or otherwise determinedanalogously. One or more UI element handler components 433 b and/or UIelement handler components 433 d may provide tagging information andoptionally criterion information to one or both of tag directorcomponent 402 b operating in execution environment 401 b and/or to tagdirector component 402 d in execution environment 401 d to create amatched tag.

FIG. 4D illustrates, in an aspect, tag director component 402 d in amodel subsystem 419 d in execution environment 401 d, which may beincluded in and/or otherwise may include service provider node 506 inFIG. 5. A UI element handler component 433 b for presenting and/orreceiving input identifying tagging information and/or a UI elementhandler component 433 b for presenting and/or for receiving inputidentifying criterion information may operate in browser 403 b inexecution environment of user node 502. A message based on the inputinformation corresponding to a UI element presented by the tagginginformation UI element handler component 433 b and/or the criterioninformation UI element handler component 433 b may be transmitted bybrowser 403 b to network service 403 d operating in executionenvironment 401 d of service provider node 506 via network 504. Tagdirector component 402 d may be invoked in response to the message by arequest handler (not shown) in model subsystem 419 d. Tag directorcomponent 402 d may receive tagging information and/or otherwise mayreceiving information based on the message to identify tagginginformation. Browser 403 b and/or network application agent 405 b maysend the message via user node 502 communicatively coupled to network504 to service provider node 506 for delivery to network service 403 d.Controller component 417 d may receive at least some portion of themessage. Based on the message or portion thereof, such as a URI,controller component 417 d may route information in the message to arequest handler (not shown) in model subsystem 419 d. Tag directorcomponent 402 d may include, may be included in, and/or may otherwiseinteroperate with the request handler identified by controller component417 d. Tag director component 402 d may identify a tag based on thetagging information received and/or otherwise identified. Tag directorcomponent 402 d may identify a tagging criterion analogously, based oninput detected by browser 403 b in execution environment 401 b of usernode 502. Tag director component 402 d may create a matched tagidentifying the tag and the tagging criterion. For example, in anaspect, tag director component 402 d may store a tagging association forthe matched tag in one or more records and/or locations in tagging store449 d.

The arrangement of components operating in execution environment 401 c,illustrated in FIG. 4C, may also perform the operations described aboveand/or analogous operations. Execution environment 401 c and/or analogof execution environment 401 c may be provided by and/or otherwise myinclude one or more nodes, such as a user node 502. Input processing inexecution environment 401 c in FIG. 4C may be performed for more thanone application 403 c by a subsystem illustrated by tagging subsystem407 c. In an aspect, a UI element handler component 433 c and/or apresentation controller component 435 c operating in an application 403c may receive input information corresponding to a presented item toidentify tagging information and/or to identify criterion information.The UI element handler component 433 c may operate in an application,such a first application 403 c 1 or a second application 403 c 2 asshown in FIG. 4C. Alternatively or additionally, an application 403 cmay interoperate with a UI element handler component, which may beincluded in a tag handler component 408 c, provided by tagging subsystem407 c. A UI element handler 433 c 1 in first application 403 c 1 mayinteroperate with a UI element handler component in tagging subsystem407 c in receiving input information to provide tagging informationand/or criterion information to tag director component 402 c. A userinput may be detected by an input driver 441 c. Input information, suchas information identifying a location with respect to a presentationspace, may be provided by the input driver 441 c to a GUI subsystem 437c. Based on the input information, GUI subsystem 437 c may identify anapplication 403 c and send selection information, based on the inputinformation, to the application 403 c. GUI subsystem 437 c may provideinput information to a component, such as a presentation controller 435c 1 to route the input information within first application 403 c 1 forprocessing. Alternatively or additionally, GUI subsystem 437 c mayprovide input information directly to one or more UI element handlers433 c corresponding to one or more UI elements that GUI subsystem 437 cdetermines corresponds to the detected user input. Tag directorcomponent 403 c creates a matched tag identifying the tag and thetagging criterion. For example, in an aspect, tag director component 402d may store a tagging association for the matched tag in a storagelocation in a processor memory and/or in a persistent secondary storagelocation in tagging store 449 c.

Returning to FIG. 2, a block 204 illustrates that the method furtherincludes determining that the tagging criterion is met for each resourcein a plurality of resources. Accordingly, a system for tagging aresource includes means for determining that the tagging criterion ismet for each resource in a plurality of resources. For example, thearrangement in FIG. 3, includes criterion match component 304 that isoperable for determining that the tagging criterion is met for eachresource in a plurality of resources. FIGS. 4A-D illustrate criterionmatch components 404 as adaptations and/or analogs of criterion matchcomponent 304 in FIG. 3. One or more criterion match components 404operate in an execution environment 401. The system for tagging aresource includes one or more processors and logic encoded in one ormore tangible media for execution by the one or more processors thatwhen executed is operable for determining that the tagging criterion ismet for each resource in a plurality of resources.

In FIG. 4A, a criterion match component 404 a is illustrated as acomponent of application 403 a. In FIG. 4B, a criterion match component404 b is illustrated as a component of network application agent 405 b.In FIG. 4C, a criterion match component 402 c is illustrated operatingexternal to one or more applications 403 c. Execution environment 401 cincludes a criterion match component 404 c in tagging subsystem 407 c.In FIG. 4D, a criterion match component 402 d is illustrated operatingin network service 403 d remote from a network agent communicativelycoupled to the network service 403 d. In an aspect criterion matchcomponent 404 b and criterion match component 404 d communicate viabrowser 403 b and network service 403 d in performing a portion of themethod illustrated in FIG. 2 in block 204.

In an aspect, an operation may be performed to determine whether atagging criterion is met for a resource, in response to detecting anaccess to the resource. Detecting an access to a resource may be directand/or indirect. Further detecting an access to a resource may includedetecting an indication that a resource is to be accessed, detecting aresource while it is accessed, and/or identifying a resource prior to,during, and subsequent to an access, to the resource.

With respect to FIG. 4A-D, an application 403 may access a resource, inresponse to a request to present a listing of resources in a folder in afile system, data base, and/or other data repository that includes theparticular resource. A criterion match component 404 may be invoked, inresponse to accessing the resource and/or an identifier of the resource.A tag director component 402 may interoperate with the criterion matchcomponent 404 to identify a tagging criterion identified by a matchedtag. The criterion match component 404 may determine whether the taggingcriterion is met for the resource. The tagging criterion is based ondata associated with the resource other than and/or in addition to thetag. For example, the tagging criterion may specify a thresholdcriterion for measuring a playing duration of a video stream. Acriterion match component 404 may operate to access video stream playduration information from metadata in and/or otherwise associated with avideo file in order to evaluate the tagging criterion. The criterionmatch component 404 may determine that the tagging criterion is met.This process may be repeated in response to accessing each resource. Acriterion match component 404 may detect that the tagging criterion ismet for a plurality of resources. In the playing duration example, thematched tag identifying the tagging criterion may identify the tag“movie” or “feature length”. When the threshold is exceeded, the taggingcriterion may be specified to indicate the criterion is met whenevaluated for a particular video file.

In FIG. 4A, application 403 a may access a particular resource, inresponse to a request to present a listing of resources in a folder in afile system, data base, and/or other data repository that includes theparticular resource. Criterion match component 404 a may be invoked, inresponse to accessing the resource and/or in response to accessing anidentifier of the resource. A tagging criterion identified by a matchedtag created by tag director component 402 a, in an instance of executionenvironment 401 a, may be identified to and/or otherwise received bycriterion match component 404 a. Criterion match component 404 a maydetermine whether the tagging criterion met for the resource. Thetagging criterion is based on data associated with the resource otherthan and/or in addition to the tag in the matched tag. Criterion matchcomponent 404 a may operate to access metadata associated with theresource in order to evaluate a tagging criterion. For example, thetagging criterion may be based on a time of day the resource isaccessed. Criterion match component 404 a may determine that the taggingcriterion is met. This process may be repeated in response to accessingeach resource in the identified data repository. Criterion matchcomponent 404 a may detect that the tagging criterion is met for zero ormore of the resources.

Returning to the example described above with respect to FIG. 6A, anapplication 403 may access images in a system of folders, which may ormay not have sub-folders, such as file system and/or a photo-sharingservice. A criterion match component 404 may be invoked, in response toaccessing each of the images to determine whether a tagging criterionidentified by criterion information received from a user via criterionfield UI element 614 a in FIG. 6A is met for each resource. The taggingcriterion may be specified so that it is met when an image is in anaccount of a user authenticated with the user identifier, “PhotoMan”,and when the image has included in a folder named and/or otherwisecategorized as “Rural”. The user with the “Photoman” user accountidentifier, may know that all of his/her images in the identified folderare landscapes. The tagging criterion may be identified by a tagdirector component 402 to the criterion match component 404, directlyand/or indirectly. The criterion match component 404 may determinewhether the tagging criterion is met for each image in the folder andany subfolders. The criterion match component 404 may operate toreceiving account information and folder information for each imageaccessed in order to evaluate the tagging criterion. If an image fromthe “Rural” folder is included in the account of “Photoman”, thecriterion match component 404 determines that the tagging criterion ismet. This process may be repeated in response to accessing each image.The criterion match component 404 may detect that the tagging criterionis met for a zero or more images.

In FIG. 4B, the arrangement of components may perform the same operationand/or analogous operations. Browser 403 b operating in executionenvironment 401 b of user node 502, in FIG. 5, may access a particularresource, in response to a request to present and/or otherwise processthe particular resource. Criterion match component 404 b may be invoked,in response to accessing the resource and/or an identifier of theresource. A tagging criterion identified by tag director component 402 bmay be provided to and/or otherwise identified by criterion matchcomponent 404 b to identify a tagging criterion. Criterion matchcomponent 404 b may determine whether the tagging criterion is met forthe resource. For example, criterion match component 404 b may operateto identify a role of a user of browser 403 b when the tagging criterionis based on a user role. Criterion match component 404 b may determinethat the tagging criterion is met. This process may be repeated inresponse to accessing each resource accessed and/or otherwiseidentified.

With respect to the arrangement of components in FIG. 4D, a browser in auser node, may access and/or otherwise identify one or more resources inperforming a specified task. Criterion match component 402 d may beinvoked, in response to network service 403 d detecting an access to aspecific resource and/or an identifier of a specific resource inperforming the task. The browser operating in the user node may invokethe criterion match component 401 d by sending a message, via a networksuch as network 504, to network service 403 d in execution environment401 d of service provider node 506. The message and/or information basedon the message may be routed and/or made available to criterion matchcomponent 404 d. In an aspect, criterion match component 404 b inexecution environment 401 b of user node 502 may be included inexchanging and/or otherwise processing one or more messages exchangedbetween browser 403 b and network service 403 d. A tagging criterionidentified by one or both of tag director component 402 b and tagdirector component 402 d may be identified to criterion match component404 d. In the aspect, the tagging criterion may also be identifiedand/or made available to criterion match component 404 b. Criterionmatch component 404 d may determine whether the tagging criterion is metfor the resource. For example, criterion match component 404 d maydetermine whether the role of the user of browser 403 b matches a roleor a criterion for a role specified in the tagging criterion. Criterionmatch component 404 d may determine that the tagging criterion is met.

The arrangement of components in FIG. 4C operating in a node may alsoperform the same or analogous operations as described above. Anapplication 403 c may access and/or identify a particular resource.Criterion match component 404 c in tagging subsystem 407 c may beinvoked, in response to accessing and/or identifying the resource. Atagging criterion in a tagging association may be identified by tagdirector component 402 c. Tag director component 402 c may provideand/or otherwise identify the criterion information to criterion matchcomponent 404 c. Criterion match component 404 c may determine whetherthe tagging criterion is met for the particular resource. For example, amatched tag may identify a tag “Education” and may identify a taggingcriterion, as a regular expression, that matches an identifier for aneducational institution, such as a regularexpression.*(College/University) that matches any string that ends with“College” or “University”. The tagging criterion may further specifythat for resources such as online books, videos, and/or audio resourcesan owner metadata field and/or a creator metadata field is to be matchedbased on the regular expression. Criterion match component 404 c mayoperate to access specified metadata associated with the resource inorder to evaluate the tagging criterion. Criterion match component 404 cmay determine that the tagging criterion is met.

Returning to FIG. 2, a block 206 illustrates that the method yet furtherincludes tagging each resource in the plurality with the tag, inresponse to the determining. Accordingly, a system for tagging aresource includes means for tagging each resource in the plurality withthe tag, in response to the determining. For example, the arrangement inFIG. 3, includes tagging component 306 that is operable for tagging eachresource in the plurality with the tag, in response to the determining.FIGS. 4A-D illustrate tagging components 406 as adaptations and/oranalogs of tagging component 306 in FIG. 3. One or more taggingcomponents 406 operate in an execution environment 401. The system fortagging a resource includes one or more processors and logic encoded inone or more tangible media for execution by the one or more processorsthat when executed is operable for tagging each resource in theplurality with the tag, in response to the determining.

In FIG. 4A, a tagging component 406 a is illustrated as a component ofapplication 403 a. In FIG. 4B, a tagging component 406 b is illustratedas a component of network application agent 405 b. In FIG. 4C, a taggingcomponent 406 c is illustrated operating external to one or moreapplications 403 c. Execution environment 401 c includes a taggingcomponent 406 c in tagging subsystem 407 c. In FIG. 4D, a taggingcomponent 406 d is illustrated operating in network service 403 d remotefrom a network agent communicatively coupled to the network service 403d. In an aspect tagging component 406 b and tagging component 406 dcommunicate via browser 403 b and network service 403 d in performing aportion of the method illustrated in FIG. 2 in block 206.

With respect to FIG. 4A-D, a criterion match component 404 determinesthat a tagging criterion is met for a resource. The criterion matchcomponent 404 may invoke, directly and/or indirectly, a taggingcomponent 406 and identify the resource, the tag, and optionally thetagging criterion to the tagging component 406. The tagging component406 may tag the resource by creating a tagged association thatidentifies the resource and the matched tag.

In an aspect and referring to FIG. 4A, tagging may be performedautomatically in response to identifying that a tagging criterion in amatched tag is met for a resource. With respect to FIG. 4A whencriterion match component 404 a determines that a tagging criterion, ina matched tag, is met for a resource, criterion match component 404 amay invoke, directly and/or indirectly, tagging component 406 aidentifying the resource and the tag, identified by the matched tag, totagging component 406 a. In an aspect, tagging component 406 a may alsoreceive and/or otherwise identify the tagging criterion in the matchedtag. Tagging component 406 a may create a tagged association thatidentifies the resource and the matched tag, in tagging the resourcewith the tag. The tagged association may be stored in a processor memoryfor a duration of time of a particular task, such as the presentation ofthe resource and the tag. When the presentation ends, the taggedassociation may be deleted and/or otherwise destroyed. When the resourceis accessed again, criterion match component 404 a may be invoked againto determine whether the tagging criterion is met for the resource. Ifthe data that the tagging criterion is based on has changed, the taggingcriterion might not be met, for the resource. If the tagging criterionis met, criterion match component 404 a may again invoke taggingcomponent 406 a to once again tag the resource be creating a taggedassociation.

Returning to the example described above with respect to FIG. 6A, whencriterion match component 404 a determines that the tagging criterionidentified by criterion information received via criterion field UIelement 614 a in FIG. 6A is met for an image in the “Rural” folder,criterion match component 404 a may invoke tagging component 406 aproviding and/or otherwise identifying the image and the tag,“Landscape”, to tagging component 406 a. Tagging component 406 a mayoperate to create a tagged association that identifies the image and thematched tag.

In an aspect and referring to FIG. 4B, tagging may be performedautomatically in response to creating a matched tag and, thus,automatically in response to identifying that a tagging criterion in thematched tag is met for a resource. Tagging component 406 b, in browser403 b in execution environment 401 b of a user node 502, may be invokedin response to criterion match component 404 b and/or criterion matchcomponent 404 d, in execution environment 401 d of service provider node506, determining that a tagging criterion, identified by the matchedtag, is met for the resource, Tagging component 406 b may create atagged association to tag the resource with the tag and the matched tag.Tagging component 406 b may interoperate with tagging component 406 d inexecution environment 401 d of service provider node 506 via network504, to create the tagged association. The tagged association may bestored in tagged store 447 d by one or both of browser 403 b and networkservice 403 d. As described above, a tagged association may be stored ina volatile data storage medium and/or in a persistent data storagemedium.

With respect to FIG. 4D in an aspect, tagging component 406 d isillustrated operating in model subsystem 419 d in execution environment401 d which may be included in and/or otherwise include service providernode 506 in FIG. 5 as previously described. Criterion match component404 d may determine that a tagging criterion identified by a matched tagis met for a particular resource, as described above. Tagging component406 d may be invoked automatically to tag the resource, in response todetermining that the tagging criterion is met. Alternatively oradditionally, criterion match component 404 b in browser 403 b inexecution environment 401 b of user node 502 may determine that thetagging criterion is met for the resource. A message may be sent frombrowser 403 b via network 504 to network service 403 d to automaticallyinvoke tagging component 406 d to tag the resource with the tagidentified by the matched tag. Tagging component 406 d operating inexecution environment 401 d of service provider node 506 may be invokedin response to the message via a request handler (not shown) in modelsubsystem 419 d. Tagging component 406 d may identify, based on themessage, the resource and the matched tag. Tagging component 406 d maycreate a tagged association stored in a tagged store 447 d accessible toexecution environment 401 d of service provider node 506 and/or mayinteroperate with tagging component 406 b to create the taggedassociation, a copy of the tagged association, and/or a reference to thetagged association stored in a tagged store (not shown) in executionenvironment 401 b of user node 502.

The arrangement of components in execution environment 401 c, mayperform the same or analogous operations as the other arrangementsdescribed with respect to tagging a resource based on a matched tag. InFIG. 4C, tagging may be performed automatically as described herein withrespect to FIG. 4A, FIG. 4B, and/or as described with respect to FIG.4D. Tagging component 406 c, in tagging subsystem 407 c, may be invokedto tag a resource, for which a tagging criterion identified by a matchedtag is met. Tagging component 406 c is invoked to tag the resource witha tag identified by the matched tag. In an aspect, tagging component 406c may receive a matched tag via and/or otherwise in response to beinginvoked. Tagging component 406 c may create a tagged association thatidentifies the resource and the tag and/or the matched tag, thus taggingthe resource with the tag. The tagged association may be stored in atagged store 447 c accessible to multiple applications 403 c operatingin execution environment 401 c. One or more tagged resources may beshared between and/or among applications 403 c and/or one or more taggedresources and/or tags may be accessible only to a particular application403 c. In an aspect, tagging subsystem 407 c may operate to controlsharing of resources, tagging criterion, tags, and/or matched tagsbetween and/or among applications 403 c. The arrangement of componentsillustrated in FIG. 4D, may analogously be configured to control sharingof resources, tagging criterion, tags, and/or matched tags betweenand/or among user nodes communicatively coupled to a service providernode providing and/or part of execution environment 401 d.

Returning to FIG. 2, a block 208 illustrates that the method yet furtherincludes sending presentation information to present, via an outputdevice, a tag user interface element, that represents the tag, as atarget for a user input to initiate an operation that identifies aresource in the plurality. Accordingly, a system for tagging a resourceincludes means for sending presentation information to present, via anoutput device, a tag user interface element, that represents the tag, asa target for a user input to initiate an operation that identifies aresource in the plurality. For example, the arrangement in FIG. 3,includes tag handler component 308 that is operable for sendingpresentation information to present, via an output device, a tag userinterface element, that represents the tag, as a target for a user inputto initiate an operation that identifies a resource in the plurality.FIGS. 4A-D illustrate tag handler components 408 as adaptations and/oranalogs of tag handler component 308 in FIG. 3. One or more tag handlercomponents 408 operate in an execution environment 401. The system fortagging a resource includes one or more processors and logic encoded inone or more tangible media for execution by the one or more processorsthat when executed is operable for sending presentation information topresent, via an output device, a tag user interface element, thatrepresents the tag, as a target for a user input to initiate anoperation that identifies a resource in the plurality.

In FIG. 4A, a tag handler component 408 a is illustrated as a componentof application 403 a. In FIG. 4B, a tag handler component 408 b isillustrated as a component of network application agent 405 b. In FIG.4C, a tag handler component 408 c is illustrated operating external toone or more applications 403 c. Execution environment 401 c includes atag handler component 408 c in tagging subsystem 407 c. In FIG. 4D, atag handler component 408 d is illustrated operating in a networkservice 403 d remote from a network agent communicatively coupled to thenetwork service 403 d. In an aspect tag handler component 408 b and taghandler component 408 d communicate via browser 403 b and networkservice 403 d in performing a portion of the method illustrated in FIG.2 in block 208.

With respect to FIG. 4A-D, an application 403 may access a resource. AUI element handler component 433 may operate to interoperate with a GUIsubsystem 437 via a network and/or locally to present a UI elementrepresenting and/or otherwise identifying a tag, identified by a matchedtag. A tag handler component 408, which may be and/or may otherwiseinclude a UI element handler component 433, may be invoked to sendpresentation information to the GUI subsystem 437 to present, via adisplay and/or other output device, the UI element that representsand/or otherwise identifying the tag. The tag handler component 408 maybe invoked, in response to a user input that targets and/or thatotherwise corresponds to the UI element that represents and/or otherwiseidentifying the tag. In response to the user input, the tag handlercomponent 437 may operate to locate one or more resources for which thetagging criterion identified by the matched tag is/or has beendetermined to be met. In an aspect, a UI element handler component 433may operate to interoperate with the GUI subsystem 437 via a networkand/or locally to present a resource, tagged with a tag identified by amatched tag, in a resource UI element. The tag may be presented alongwith the resource as described in the previous paragraph. The taghandler component 408 may operate to locate another resource tagged withthe tag to present the other resource to the user.

In FIG. 4A, a request to present a resource may be detected by a UIelement handler component 433 a of application 403 a. Application 403 amay access, the resource, in responding to the user request. The UIelement handler component 433 a may interoperate with GUI subsystem 437a to represent and/or otherwise identify the resource in and/orotherwise by UI element. The UI element handler component 433 acorresponding to the UI element representing the resource may includeand/or otherwise interoperate with tag handler component 408 a topresent a UI element that identifies and/or otherwise represents one ormore tags, identified by respective matched tags, by sendingpresentation information to GUI subsystem 437 a as describe above topresent UI element(s) identifying the one or more tags, along with theUI element that identifies the resource, as tag(s) for the resource. Taghandler component 408 a may operate to process input information from auser. Tag handler 408 a may operate to invoke a resource accesscomponent 443 a. In one aspect, resource access component 443 a maylocate a second resource tagged with the tag in the matched tag.Alternatively or additionally, resource access component 443 a mayoperate to invoke a search component (not shown) to perform a searchbased on the tagging criterion in a matched tag that identifies the tag.When the tagging criterion is met, as determined by criterion matchcomponent 404 a, for a resource located during the search, the resourcemay be identified as tagged and/or may be tagged as described above viaoperation of one or more of tag director component 402 a, criterionmatch component 404 a, and tagging component 406 a.

Returning once again to the example described above with respect to FIG.6A, a request to present an image may be detected by a UI elementhandler component 433 a of application 403 a. In response to accessingthe image, tag director component 402 a of application 403 a may beinvoked to access the tagging criterion identified in criterion field UIelement 614 a and to provide the tagging criterion match component 404a. Criterion match component 404 a may access the account owner of theimage in determining whether the tagging criterion is met for the image.Criterion match component 404 a may determine that the tagging criterionis met for the image when “PhotoMan” is identified as the account useridentifier of the account associated with the image and when the imagein a folder that matches the tagging criterion. A UI element handlercomponent 433 a may present a UI element that identifies the image in aview pane UI element 610 b of a resource view UI element 606 b. Theimage representation is illustrated by image data UI element 622 b.Application 403 a may also identify the tag, “Landscape”, to tag handlercomponent 408 a to present a representation of the tag in a tag UIelement 624 a that identifies the tag. Other tags may be presented aswell, in some aspects. Tag UI element 624 b, in an aspect, may berepresented as a link to invoke a search request performed by resourceaccess component 443 a. Tag handler component 408 a may operate toprocess input information based on a user input that is directed toand/or otherwise targets tag UI element 624 b. Tag handler 408 a mayoperate to invoke a search component (not shown) to locate a secondresource tagged with the tag. In an aspect, any resource tagged with“Landscape” may be located. In another aspect, illustrated in FIG. 6Cresources that match the tag represented by tag UI element 624 b in FIG.6B and that match the tagging criterion specified in criterioninformation form field UI element 614 a are located. FIG. 6C shows atagged resources UI element 606 c including a resource list pane UIelement 610 c. A list of images in the account of user, “PhotoMan”, andin matching folders are presented in a list UI element 626 c in apresentation space of resource list pane UI element 610 c. Items in thelists may be links or other input UI elements that when selected areprocessed by application 403 a to display an instance of applicationwindow UI element 606 b including a representation of the identifiedimage and the representations of the one or more tags for the image. Inthe example, processing of the tagging criterion results in automatictagging of resources in the account of a specific user. Selecting thetag in a UI interface may restrict the scope of a search for relatedresources to the account of the identified user as described in moredetail below.

In FIG. 4B and FIG. 4D, a request to present a resource may be detectedby a UI element handler component 433 b of browser 403 b operating inexecution environment 401 b in and/or otherwise including user node 502in FIG. 5. Browser 403 b may access the resource, in responding to theuser request. A UI element handler component 433 b may operate topresent a UI element that represents the resource. A UI element handlercomponent 433 b corresponding to the resource UI element may includeand/or otherwise interoperate with tag handler component 408 b topresent one more UI elements that represent of one or more tags withwhich the resource is tagged by sending presentation information to GUIsubsystem 437 b, as described above, to present the one or more tagsalong with the representation of the resource via an output device. Taghandler component 408 b may operate to process input information from auser. Tag handler component 408 b may operate to invoke resource accesscomponent 443 b and/or resource access component 443 d operating inexecution environment 401 d of service provider node 506. The invocationmay be direct or indirect. One of the resource access components or bothof the resource access components may locate one or more other resourcestagged with matched tag and stored in a data store (not shown) ofexecution environment 401 b and/or in a data store of executionenvironment 401 d such as tagged store 447 d. In an aspect, tag handlercomponent 408 b may interoperate with a content handler component 431 bto send a message to network service 403 d. The message may include arequest for a resource and/or information that identifies the resource.Controller component 417 d may route the request to a request handlercomponent (not shown) to access the resource and/or identify theresource via resource access component 443 d from a data store ofhosting execution environment 401 d. The request handler componentoperating in model subsystem 419 d may invoke tag handler component 408d to generate presentation information to present a UI element torepresent the tag and along with a UI element presented to represent theresource. Tag handler component 408 d may send the presentationinformation via controller component 417 d in a message to browser 403b. The presentation information in the message may be provided to asuitable content handler component 431 b to interoperate with taghandler 408 b and/or a resource UI element handler 433 b to present theUI element that represents of the tag along with the resource UIelement, as described above. Alternatively or additionally, the resourcemay be tagged in response to the request to present the resource bybrowser 403 b and/or network service 403 d.

In FIG. 4C, a request to present a resource may be detected by a UIelement handler component 433 c in application 403 c operating inexecution environment 401 c. The application 403 c may access theresource, in responding to the user request. A UI element handlercomponent 433 c in the application 403 c may operate to interoperatewith GUI subsystem 437 c to present a resource in a resource UI element.A UI element handler component 433 c corresponding to the resource UIelement may include and/or otherwise interoperate with tag handlercomponent 408 c to present a representation of one or more matched tagswith which the resource is tagged by sending presentation information toGUI subsystem 437 c as describe above to present representation of theone or more matched tags along with a representation of the resource.Tag handler component 408 c may operate to process input informationfrom a user that corresponds to the representation of one of the matchedtags. Tag handler component 408 c may operate to locate another resourcetagged with the matched tag via a resource access component 443 c intagging subsystem 407 c. Alternatively or additionally, resource accesscomponent 408 c may operate to perform a search based on the taggingcriterion identified by the matched tag. When the tagging criterion ismet for a resource located during the search, the resource may be taggedas described above via operation of one or more of tag directorcomponent 402 c, criterion match component 404 c, and tagging component406 c. Tagging subsystem 407 c may provide services for multipleapplications 403 c, and in an aspect may allow multiple applications toshare tags, tagging criterion, and/or resources.

The method illustrated in FIG. 2 may include additional aspectssupported by various adaptations and/or analogs of the arrangement ofcomponents in FIG. 3.

In an aspect, creating a matched tag may include determining criterioninformation that identifies a tagging criterion. For example,determining criterion information for creating a matched tag may includereceiving the criterion information from a user. With respect to FIG. 4Aand FIG. 6A, a UI element 433 a operating in execution environment 401 amay send presentation information to present create matched tag UIelement 606 a, as described above. A user may specify and/or otherwiseidentify criterion information via a UI element, such as criterion fieldUI element 614 a. Any suitable UI element suitable for prompting a userto provide input may be presented in various aspects.

In another aspect, one or more vocabularies and/or dictionaries may beidentified based on a user input. Various aspects and analogs ofexecution environments 401 illustrated in FIGS. 4A-D may include and/ormay access a component that manages a vocabulary of tags, such as adictionary component 445. A user input processed by a UI element handlercomponent 433 may identify a definition or a portion thereof for a tagin a dictionary processed by the dictionary component 445. Thedefinition or portion thereof may valid according to a schema associatedwith the dictionary. A dictionary component 445 may access a schemamaintained and processed external to the dictionary component 445 and/ormay include instructions for maintaining and/processing the schema. Atag director component 402 and/or a tag handler 408 may identifycriterion information in response to and/or otherwise based onidentifying the dictionary. In an aspect, a definition or portionthereof may be located in a dictionary by a dictionary component 445.The dictionary may be identified in response to locating the and/orotherwise matching the definition and/or a portion thereof. In anotheraspect, tagging information, for creating a matched tag, may bedetermined by locating the tag in the dictionary. For example, bylocating a definition that matches user input, the tag defined by thedefinition may be identified by a dictionary component 445 to provide totag director component 402 to for creating a matched tag.

Alternatively or additionally, criterion information may be determinedbased on a definition or a portion thereof for the tag. A definition mayinclude a text description, an identifier of a part of speech, anexample use of the tag, a synonym for the tag, an antonym for the tag, atense for the tag, an alternate spelling, a homonym, and terms derivedfrom the tag such a plural form or a different tense. Criterioninformation may be determined and/or otherwise identified based on oneor more parts of a definition such as these. With respect to FIGS. 4A-D,a definition may be located by a dictionary component 445 by performinga lookup based on a tag for creating a matched tag and/or based on userinput identifying the definition. Some or all of the definition, aslisted above, may be provided to a tag director component 402 as dataincluded in criterion information that identifies a tagging criterion.For example, a definition of the term “read” may be past tense orpresent tense. Criterion information from a dictionary component 445indicting past tense may be provided to a tag director component 402.The tag director 402 component may identify a tagging criterion that ismet for a resource that has metadata, such as date of last access thatindicates whether the resource has been utilized within a specifiedcontext. For example, the tagging criterion may be specified to match aresource that has not been read from a data storage medium since aparticular date and/or time, processed by a particular applicationand/or device at any time, and/or accessed by particular user during aspecified period; to name just a few examples.

As described above, one or more vocabularies and/or dictionaries may beidentified based on a tag for creating a matched tag and/or may beidentified based on a tagging criterion for creating the matched tag.

Criterion information and/or tagging information may be determinedautomatically in various aspects. Criterion information may bedetermined automatically based on at least one of the tag, a resourcetagged with the tag, the user, and an input event associated withidentifying the tag by the user. An aspect where criterion informationis determined based on a tag is described above. The criterioninformation may be determined automatically in response to identifying auser identified tag.

Determining criterion information for creating a matched tag may includereceiving a message sent via a network, from a remote device. Themessage may be sent and/or received in response to a user input detectedby the remote device. A tag director component 402, in any of thearrangements in FIGS. 4A-D, may be adapted to invoke a dictionarycomponent 445, automatically upon receiving tagging information by thetag director component 402. The criterion information may be determinedbased on the tag as described above.

Criterion information and, thus, a tagging criterion identified by thecriterion information for creating a matched tag may be based on anydata associated with a resource other than and/or in addition to a tagidentified by the matched tag. For example, a tagging criterion may bebased on one of more of the following that are associated with aresource that may be tagged: a user, the resource, a user input, ageospatial location, a time, a date, and a duration—to name a fewexamples.

With respect to a tagging criterion based on a user, a tagging criterionfor creating a matched tag may be based on a creator of the matched tag,a role of a user with respect to a resource that can be tagged, anaction performed by and/or at the request of a user that is associatedwith a resource that can be tagged, and/or a location of a userassociated with a resource that can be tagged. A location upon which atagging criterion may be based may be a permanent location associatedwith a user, a temporary location, a location identified in the contextof an activity and/or other attribute related to a user, a personalattribute of a user, a device operated by and/or otherwise operating inresponse to and/or on behalf of a user, and/or a relation of a user or agroup or organization.

For example, criterion information may be based a program componentand/or application invoked by particular user in performing some or allof an operation based on a resource. In FIG. 4C, first application 403 c1 may be implemented to perform operations for a user based oninformation in and/or associated with the user's account. Criterioninformation may identify a tagging criterion that is based on an accountof a specified user. Second application 403 c 2 may be implemented toperform operations for a user that creates and/or changes resources onbehalf of other users. Criterion information may be based on an accesscontrol role of a user of second application 403 c 2. User-basedcriterion information may be based on a device and/or hardware componentbeing utilized by a particular user and/or otherwise associated with theuser, personal information for a user such as gender and/or age, a taskbeing performed by and/or on behalf of a specified user or group, andthe like.

With respect to a tagging criterion based on a resource that can betagged, a tagging criterion for creating a matched tag may be based on aMIME type of the resource, a size of the resource, a data and/or timeassociated with the resource, an attribute of processing the resourcelike a play time of an audio resource, a location of the resource and/orgeospatial location of a physical entity that the resource representsand/or that is otherwise associated with, the content and/or a portionthereof of the resource, a use of the resource, a cost of the resource,a measure of utilization of the resource, and/or a rank like a rank ormeasure of popularity or quality of the resource. Any of executionenvironments 401 in FIGS. 4A-D and their adaptations and/or analogs mayinclude a tag director component 402 to identify criterion information,and thus a tagging criterion, based on any one or more of the above. Forexample, as described above with respect to FIG. 4C, tag directorcomponent 402 c may identify criterion information based an applicationand/or operation that includes processing a resource that may be taggedwith a tag identified by a matched tag that identifies the taggingcriterion identified by the criterion information.

In another example, criterion information for creating a matched tag maybe based on a count of accesses to a resource. The count may be specificto a user, a group, a span of time, and/or may have other contextualconstraints. For example, tag director component 402 may identifycriterion information that identifies a tagging criterion that is onlymet for a resource if it has been accessed at least once within anyother contextual constraints specified by the tagging criterion.Alternatively or additionally, a tag director component 402 may identifycriterion information based on a cost of power associated withprocessing a resource. A tagging criterion identified by such criterioninformation may match a resource if its cost of processing according aparticular metric meets a threshold condition. Thus resources that meetthe threshold condition may be tagged with the tag identified by thematched tag that identifies the tagging criterion based on the thresholdcondition. The two previous examples illustrate that criterioninformation for creating a matched may be based on a measure ofutilization of a resource that is and/or may be tagged with a tag.

One or more measures of temperature or humidity may be communicated to atag director component 402, operating in an execution environment 401,as criterion information and/or as data included in criterioninformation. The tag director component 402 may identify a taggingcriterion based on the criterion information. For example, a taggingcriterion may be met for a resource having an associated measure of heatwithin a range and/or otherwise meeting a threshold condition specifiedby the tagging criterion. The tagging director component 402 may receiveand/or otherwise identify tagging information identifying a tag forcreating a matched tag identifying the tag and the tagging criterion.More specifically, a tagging director component 402 may create a numberof tags based on various measures of temperature and various respectivetags, such as “Normal”, “Alert”, and “Warning”. Such tags may be used byan application or system that monitors one or more devices which may belocated at various locations. Temperature information from the one ormore locations may be communicated to a node including and/or otherwiseincluded in an execution environment 401. A criterion match component404 may be invoked in response to receiving temperature information.Tagging criteria identified by the respective matched tags may also bebased on location and/or other information for identifying a particulardevice or group of devices. In response to receiving temperatureinformation for a location, the criterion match component 404 may locateany resources representing the electronic devices and/or locations todetermine whether tagging criterion identified by each of one or more ofthe matched tags is met or is no longer met. In response, to determiningthat that a tagging criterion is met or no longer met for a resource, atagging component 406 may be invoked to untag and/or to tag theresource. Note that user viewing a representation of a monitored deviceand/or a location may direct input to a tag for the resource to locateother resources with the matched tag. A user may see via a display thata resource tagged with the tag, “Normal” is untagged with respect to the“Normal” tag and may see an “Alert” tag represented, in response to theresource being tagged with the “Alert” tag. The user may locate one ormore other resources tagged with the “Alert” tag by directing an inputto the “Alert” UI element and/or an associated UI element. Thus, thepresent disclosure enables dynamic tagging and untagging in response tochanging information. Associations between and/or among resources taggedwith a same tag are updated dynamically.

In still another aspect, criterion information and thus a taggingcriterion for creating a matched tag may be based on a measure ofattention and/or a measure of interaction for the user. Thus variousmetrics and measures of user interaction and/or the lack of it may beincluded in a tagging criterion to identify various objects and devicesbased on user interaction and/or attention to the respective variousdevices. Resources that represent the various resources and/or user maybe tagged with tags bound to tagging criterion by various matched tags.Such tagging may be relatively persistent and/or dynamic based on themetrics, measurements, and specification of matching criteria. Given aresource tagged with a particular matched tag, other resources may beeasily located, Thus inattentive students, machine operators, customersmay be identified over long periods of time with persistent tags thatmay be associated with matching criteria based on long-term metrics suchas an average over a period and/or over relative shorter periods basedon metrics that may provide changing measurements over time. Similarstatus and/or time base matching criteria may be specified to tagresources of various types according a rank such as popularity orsatisfaction, lab data for human health, presence data such as presencestatus, and the like. Another example of a type of data that a categoryof matching criteria may be based on that may be persistent and/orvolatile depending on the particular tagging criterion, is matchingcriteria based on geospatial location. Some resources don't move othersmove. It should be apparent given the description herein to thoseskilled in the art of specifying matching criteria that matching and,thus, a tagging criterion may be based on a metric and/.or measure forone or more of a time, a date, and a duration.

Determining criterion information for creating a matched tag may bebased on a communication that identifies at least one of a resource, thetag, and metadata for the resource, an initiator of the communication,and an acceptor of the communication. For example, attachments exchangedin emails, MMS, and/or other user communications technologies andsystems may be identified and tagged according to the teaching herein.

In an aspect, creating a matched tag may include identifying a userprovided tag automatically, in response to determining the criterioninformation. In an instance of the aspect, determining criterioninformation for creating a matched tag may include identifying avocabulary and/or a dictionary. A tag for creating a matched tag may beidentified by locating a definition in a dictionary based criterioninformation.

As described above, one or more vocabularies and/or dictionaries may beidentified based on a user input. Various aspects and analogs ofexecution environments 401 illustrated in FIGS. 4A-4D may include and/ormay access a component that manages a vocabulary of tags, such asdictionary component 445. A user input processed by a UI element handlercomponent 433 may identify a definition or a portion thereof for a tagin a dictionary processed by the dictionary component 445. Thedefinition or portion thereof may be, may be included in, and/or mayotherwise identify criterion information. A tag director component 402and/or a tag handler 408 may identify tagging information in response toand/or otherwise based on identifying the dictionary. In an aspect, adefinition or portion thereof, identified by a user, may be located in adictionary by a dictionary component 445. A term defined by thedefinition may identify some or all of an instance of tagginginformation and/or a portion of the definition may identify tagginginformation or a portion thereof, such as a synonym identified in thelocated definition. By locating a definition that matches user input ina dictionary, the tag defined by the definition may be identified by adictionary component 445 to provide to tag director component 402 tocreate a matched tag.

A vocabulary and/or a dictionary may be predefined, may be userspecified, or may include a pre-defined portion and a user specifiedportion. Thus, a tag for creating a matched tag may be added to one ormore vocabularies and/or dictionaries by a user in some aspects.Predefined tags may be provided by a software developer, anadministrator or an application, service, and/or system, and/or by anowner or employee of an owner of an application, service, and/or systemthat includes and/or otherwise accesses a vocabulary and/or dictionary.

In another aspect, creating a matched tag may include receivingcriterion information identifying a tagging criterion for the matchedtag while no resource is tagged with the tag. That is the matched tagmay be created that identifies a pre-defined tag that is unused and/or auser defined tag that that is either unused or has not been specifiedpreviously.

Creating a matched tag may include receiving, from a user, tagginginformation that identifies a tag. Receiving the tagging information mayinclude receiving a message sent via a network, from a remote device, inresponse to a user input detected by the remote device. Tagginginformation may be received while no resource for tagging is presentedto the user via an output device. This is described above with respectto FIG. 6A and FIGS. 4A-D.

Also as described above, in another aspect, tagging information may bereceived while a resource that can be tagged is presented to a user. Thetagging information may be received and/or otherwise identified inresponse to a user input detected while the resource is presented. Arepresentation of a resource may be presented to a user. The resourcemay be tagged with the matched tag or the process of tagging theresource with the matched tag may be occurring. The tag may beidentified based on a user input that corresponds to a UI element thatincludes and/or is otherwise associated with the representation of theresource.

Exemplary resources that may be tagged include documents and other textdata, image data including pictures and video, audio data, form data,streaming data, user accounts, representations of user groups, legalentities, executable entities, hardware components, a network and/or Webbased services, and a computer resources such as disks, threads, memory,and the like.

A determination that a tagging criterion is met for a resource may beperformed in response to an access to the resource by a hardware andoptionally by a software component. An access to a resource may be inresponse to an user input detected via an input device. The access maybe detected by detecting the user input. The user input may targetand/or otherwise correspond to a UI element presented for accessingand/or for presenting a representation of a resource that may be taggedwith a matched tag for which the tagging criterion is determined to bemet.

Determining that a tagging criterion is met may include performing asearch operation and receiving a result identifying a set of matchingresources. The search may be based on tagging criterion. A criterionmatch component may operate to perform a search operation, provide forperforming a search operation, and/or receive results of a searchoperative via interaction, direct and/or indirect, with a search engine.Alternatively, a separate determination may be made for each resourceidentified in the result to identify any resources for which the taggingcriterion is met.

In an aspect, a resource and/or an attribute of the resource may change.The change may be detected by an application and/or by a resource accesscomponent. Determining whether the tagging criterion is met for theresource may be performed in response to detecting the change.

Thus determining one or more resources for which a tagging criterion ismet may be performed at a given time for resources that may be taggedwith the matched tag. Alternatively or additionally, such adetermination may be made when an access to a resource is detected.Alternatively or additionally, such a determination may be made whenchange to a resource and/or an attribute associated with the resource isdetected. Still further, such a determination may be made when aresource is created and/or otherwise initially identified. In yetanother aspect, such a determination may be made in response to a userinput indicating that the determination is to be performed.

A resource for which a tagging criterion, identified by a matched tag,is met, may be tagged by creating a tagged association that identifiesmatched tag and the resource. A tagged association may be stored, by atag director component, in a storage location, wherein the storagelocation may be included in at least one of a volatile data storagemedium and a non-volatile data storage medium, such as a tagging storeillustrated in FIG. 4A, FIG. 4C, and FIG. 4D. A tagged association maybe a matched tagged association that identifies the tagging criterion. Amatched tagged association, thus, identifies a matched tag and aresource.

A resource may be tagged with a tag identified by a matched tagautomatically in response to the determining that the tagging criterion,identified by the matched tag, is met for the resource. Tagging aresource may be performed automatically in response to creating amatched tag.

A resource may be tagged automatically in response to detecting theresource. A resource may be detected directly and/or indirectly. In oneaspect, a resource is detected indirectly in response to receivingand/or determining an identifier for the resource. Alternatively oradditionally, a resource may be detected by detecting, directly and/orindirectly, an access to the resource. The resource may be accessed by ahardware component for processing based on an instruction executed by aprocessor. A resource may be detected by detecting an access forpresenting a representation of the resource to a user via an outputdevice. Detecting the access may include detecting an inputcorresponding to a UI element that includes a representation of at leastone of the matched tag and the resource. A resource may be detected in asearch result set. A search operation that produces a result set may bebased on a tag in a matched tag and/or may be based on a taggingcriterion in the matched tag.

A resource may be tagged with a matched tag by creating a taggedassociation that identifies the matched tag and the resource. A taggedassociation may identify a tag by including and/or otherwise identifyingtagging information. A tagging criterion may be identified by includingand/or otherwise identifying criterion information. Such an associationmay be stored in a memory location which may be contiguous or not withrespect to a physical storage medium and/or with respect to a virtualmemory or logical storage system, such as file system or database. Amemory location including a tagged association may be volatile,persistent, may be split between volatile and persistent memory, and/ormay be replicated in one or more volatile and/or persistent memorylocations.

In an aspect, tag UI element may represent a matched tag for a resourcetagged with the matched tag while a representation of the resource isrepresented by and/or in a resource UI element along with the presentedmatched tag. Input information may be received via a tag handlercomponent, in response to a user input targeting the representation thatidentifies the matched tag. Another resource, for which the taggingcriterion in the matched tag that identifies the tag, may be locatedand/or otherwise identified by a tagging component and/or a resourceaccess component, in response to receiving the input information.Presentation information may be sent by a tag handler component topresent a UI element to represent the other resource to the user via anoutput device. The presentation information may be sent in response tolocating the other resource. The other resource may be located based onthe tag and/or the tagging criterion.

In another aspect a tag identified by a first matched tag thatidentifies a first tagging criterion may also be identified by a secondmatched tag that identifies a second tagging criterion. A taggingdirector component may locate such tagging associations. A resource forwhich the first tagging criterion is met and for which the secondtagging criterion is met may be tagged a first time based on the firstmatched tag and may be tagged a second time based on the second matchedtag by a tagging component.

For a resource tagged with a tag identified by more than one matched tagthat each identifies a tagging criterion met for the resource, a firstUI element that represents the tag may be presented, by a tag handlercomponent, along with a UI element that represents the resource based ona first matched tag. Alternatively or additionally, a second UI elementthat represents of the tag may be presented along with the resource UIelement based on the second matched tag. The first UI elementrepresenting the tag and the second UI element representing of the tagmay have a user detectable difference, where the difference is based ona difference between the first tagging criterion and the second taggingcriterion, or more broadly, based on a difference between the firstmatched tag and the second matched tag. In FIG. 6B, the resource UIelement 622 b is tagged with “Landscape” a first time, illustrated bytag UI element 624 b and tagged with “Landscape” a second time,illustrated by tag UI element 628 b. The tag represented by tag UIelement 624 b is identified by a matched tag that identifies a taggingcriterion based on criterion information identified in form field UIelement 614 a in FIG. 6A which is based on a specific user accountidentifier. Tag UI element 624 b is presented with a “<” icon orcharacter to indicate that the scope of the tag, as specified by itstagging criterion, is restricted to a single account. The “Landscape”tag represented by tag UI element 628 b is identified by a matched tagthat identifies a tagging criterion that does not restrict resourcesthat can be tagged to a single account. Tag UI element 628 b ispresented with a “>” icon or character which may be defined to indicatethe scope of the matched tag crosses spans multiple user accounts. Anyadditional symbol, character, and/or visual attribute may be defined todistinguish, to a user, matched tags that identify the same tag. A userinput corresponding to a first UI element representing a tag having afirst tagging criterion may result in a first set of resources that areassociated via the tag and the first tagging criterion. A user inputcorresponding to a second UI element representing the tag having asecond tagging criterion may result in a second set of resources thatare associated via the tag and the second tagging criterion. The firstset and the second set may differ.

In yet another aspect, a representation of some or all of a taggingcriterion may be presented, by a tag handler component, along withand/or otherwise in response to a user input directed to arepresentation of tag, where the tag and the tagging criterion areidentified by a matched tag. For example, a right-click of mouse inputdevice corresponding to a pointer UI element over tag UI element 624 bin FIG. 6B may result in input information based on the input beingprovided to a UI element handler 433 and/or a tag handler component 408that corresponds to tag UI element 624B. In response to receiving theinput information the UI element 433 and/or the tag handler component408 may invoke another UI element 433 and/or another tag handlercomponent 408 to send presentation information to present a UI elementthat represents of the tagging criterion identified by the matched tagthat identifies that tag represented by tag UI element 624 b. Arepresentation of the tagging criterion determined for an identified tagmay be presented along with the representation of the tag. It may bepresented in a same UI element or in a separate UI element such as adialog box or flyover text in response to a user input.

As described above with respect to FIGS. 6B-C, an aspect of the methodin FIG. 2, includes receiving input information by a tag handlercomponent, in response to a user input targeting a UI element thatrepresents of a matched tag presented along with a tagged resource. Asecond resource, tagged with the matched tag, may be located and/orotherwise identified by a tagging component and/or a resource accesscomponent, in response to receiving the input information. Arepresentation of the identified second resource may be presented to theuser via an output device.

Performing the method illustrated in FIG. 2 and/or any of its extensionand/or in any of its aspects may include one or more of calling afunction or method of an object, sending a message via a network;sending a message via an inter-process communication mechanism such as apipe, a semaphore, a shared data area, and/or a queue; and/or receivinga request such as poll and responding to invoke, and sending anasynchronous message.

Output devices suitable for presenting a representation of a resourceand/or a tag include a visual output device, an audio output device, anda tactile output device. One output device may present a resource andanother output device may present a tag with which the resource istagged.

As described the method may be performed by a non-networked device, anetworked device, and/or may be performed may more than one device,and/or by more than one executable environment. As such, one or more ofdetermining criterion information, determining that tagging criterion ismet, tagging, and sending presentation information may include sendingand/or receiving a message via a network. Further, a message, includedin performing any of the subject matter described herein and/or any ofits extensions in any of its aspects, may an asynchronous messagewithout a corresponding request.

To the accomplishment of the foregoing and related ends, thedescriptions and annexed drawings set forth certain illustrative aspectsand implementations of the disclosure. These are indicative of but a fewof the various ways in which one or more aspects of the disclosure maybe employed. The other aspects, advantages, and novel features of thedisclosure will become apparent from the detailed description includedherein when considered in conjunction with the annexed drawings.

It should be understood that the various components illustrated in thevarious block diagrams represent logical components that are configuredto perform the functionality described herein and may be implemented insoftware, hardware, or a combination of the two. Moreover, some or allof these logical components may be combined, some may be omittedaltogether, and additional components may be added while still achievingthe functionality described herein. Thus, the subject matter describedherein may be embodied in many different variations, and all suchvariations are contemplated to be within the scope of what is claimed.

To facilitate an understanding of the subject matter described above,many aspects are described in terms of sequences of actions that may beperformed by elements of a computer system. For example, it will berecognized that the various actions may be performed by specializedcircuits or circuitry (e.g., discrete logic gates interconnected toperform a specialized function), by program instructions being executedby one or more processors, or by a combination of both. The descriptionherein of any sequence of actions is not intended to imply that thespecific order described for performing that sequence must be followed.

Moreover, the methods described herein may be embodied in executableinstructions stored in a non-transitory computer readable storage mediumfor use by or in connection with an instruction execution machine,system, apparatus, or device, such as a computer-based orprocessor-containing machine, system, apparatus, or device. As usedhere, a “non-transitory computer readable storage medium” may includeone or more of any suitable media for storing the executableinstructions of a computer program in one or more forms including anelectronic, magnetic, optical, and electromagnetic form, such that theinstruction execution machine, system, apparatus, or device may read (orfetch) the instructions from the non-transitory computer readablestorage medium and execute the instructions for carrying out thedescribed methods. A non-transitory computer readable storage medium isnon-transitory. A non-exhaustive list of conventional exemplarynon-transitory computer readable storage media includes a portablecomputer diskette; a random access memory (RAM); a read only memory(ROM); an erasable programmable read only memory (EPROM or Flashmemory); optical storage devices, including a portable compact disc(CD), a portable digital video disc (DVD), a high definition DVD(HD-DVD™), and a Blu-ray™ disc; and the like

Thus, the subject matter described herein may be embodied in manydifferent forms, and all such forms are contemplated to be within thescope of what is claimed. It will be understood that various details maybe changed without departing from the scope of the claimed subjectmatter. Furthermore, the foregoing description is for the purpose ofillustration only, and not for the purpose of limitation, as the scopeof protection sought is defined by the claims as set forth hereinaftertogether with any equivalents.

All methods described herein may be performed in any order unlessotherwise indicated herein explicitly or by context. The use of theterms “a” and “an” and “the” and similar referents in the context of theforegoing description and in the context of the following claims are tobe construed to include the singular and the plural, unless otherwiseindicated herein explicitly or clearly contradicted by context. Theforegoing description is not to be interpreted as indicating that anynon-claimed element is essential to the practice of the subject matteras claimed.

I claim:
 1. A method for tagging a resource, the method includes:creating a matched tag by associating a user identified tag with atagging criterion that is based on data other than the tag; determiningthat the tagging criterion is met for each resource in a plurality ofresources; tagging each resource in the plurality with the tag, inresponse to the determining; and sending presentation information topresent, via an output device, a tag user interface element, thatrepresents the tag, as a target for a user input to initiate anoperation that identifies a resource in the plurality, whereinperforming at least one of the preceding actions comprising the methodincludes execution of an instruction by a processor.
 2. The method ofclaim 1 wherein the creating includes: receiving criterion information,from the user, that identifies the tagging criterion; and identifyingthe tag automatically, in response to receiving the criterioninformation.
 3. The method of claim 1 wherein the creating includes:receiving tagging information identifying the tag; and determining thetagging criterion, in response to identifying the tag.
 4. The method ofclaim 1 further includes adding the tag to the at least one of avocabulary of tags and a dictionary of tags.
 5. The method of claim 1wherein the tag is identified based on at least one of the taggingcriterion and a resource tagged with the tag.
 6. The method of claim 1wherein the creating includes receiving criterion informationidentifying the tagging criterion while no resource is tagged with thetag.
 7. The method of claim 1 wherein the creating includes receiving,from the user, tagging information that identifies the tag.
 8. Themethod of claim 7 wherein the tagging information is received while noresource for tagging is presented to the user via an output device. 9.The method of claim 7 wherein receiving the tagging informationincludes: presenting a resource to the user, wherein the resource is fortagging; and receiving the tagging information in response to a userinput detected by an input device while the resource is presented. 10.The method of claim 1 wherein at least one resource in the pluralityincludes at least one of text data, image data, audio data, form data,streaming data, a user, a group, a legal entity, an executable programcomponent, a hardware component, a service, and a process.
 11. Themethod of claim 1 wherein determining that the tagging criterion is metfor a first resource in the plurality includes receiving, from a searchoperation based on the tagging criterion, a result identifying the firstresource.
 12. The method of claim 1 wherein determining that the taggingcriterion is met for a first resource in the plurality includes:detecting a change to an attribute associated with the first resource;and determining the tagging criterion is met in response to detectingthe change.
 13. The method of claim 1 wherein the tagging is performedautomatically in response to creating the matched tag.
 14. The method ofclaim 1 wherein the tagging is performed automatically, in response todetecting the first resource, subsequent to creating the matched tag.15. The method of claim 14 wherein the first resource is detected inresponse to creating an identifier for the first resource.
 16. Themethod of claim 14 wherein the tagging includes receiving a result of asearch operation, based on a tag, that identifies the first resource.17. The method of claim 14 wherein the tagging includes receiving, froma search operation, based on the tagging criterion, a result identifyingthe first resource.
 18. The method of claim 1 wherein the tag userinterface element represents the tag for a first resource in theplurality represented by a resource user interface element presentedalong with the tag user interface element and the method furtherincludes: receiving input information, in response to the user inputtargeting the tag user interface element; locating a second resource inthe plurality, in response to receiving the input information; andpresenting a representation of the second resource to the user via anoutput device.
 19. A system for tagging a resource, the systemcomprising: a tag director component or creating a matched tag byassociating a user identified tag with a tagging criterion that is basedon data other than the tag; a criterion match component for determiningthat the tagging criterion is met for each resource in a plurality ofresources; a tagging component for tagging each resource in theplurality with the tag, in response to the determining; and a taghandler component for sending presentation information to present, viaan output device, a tag user interface element, that represents the tag,as a target for a user input to initiate an operation that identifies aresource in the plurality; and a processor, wherein at least one of thetag director component, the criterion match component, the taggingcomponent, and the tag handler component includes an instruction that isexecuted by the processor during operation of the system.
 20. Anon-transitory computer readable medium embodying a computer program,executable by a machine, for tagging a resource, the computer programcomprising executable instructions for: creating a matched tag byassociating a user identified tag with a tagging criterion that is basedon data other than the tag; determining that the tagging criterion ismet for each resource in a plurality of resources; tagging each resourcein the plurality with the tag, in response to the determining; andsending presentation information to present, via an output device, a taguser interface element, that represents the tag, as a target for a userinput to initiate an operation that identifies a resource in theplurality.